#include "script.h"
#include "keyboard.h"
#include <string>
#include <ctime>
#include "iostream"
#include "IniWriter.h"
#include "IniReader.h"

#pragma warning(disable : 4244 4305) // double <-> float conversions

CIniReader reader(".\\VehSaves.ini");
CIniWriter writer(".\\VehSaves.ini");
int vehModel;

void draw_rect(float A_0, float A_1, float A_2, float A_3, int A_4, int A_5, int A_6, int A_7)
{
	GRAPHICS::DRAW_RECT((A_0 + (A_2 * 0.5f)), (A_1 + (A_3 * 0.5f)), A_2, A_3, A_4, A_5, A_6, A_7);
}

void draw_menu_line(std::string caption, float lineWidth, float lineHeight, float lineTop, float lineLeft, float textLeft, bool active, bool title, bool rescaleText = true)
{
	// default values
	int text_col[4] = { 255, 153, 51, 255 },
		rect_col[4] = { 255, 255, 255, 255 };
	float text_scale = 0.35;
	int font = 0;

	// correcting values for active line
	if (active)
	{
		text_col[0] = 255;
		text_col[1] = 153;
		text_col[2] = 51;

		rect_col[0] = 151;
		rect_col[1] = 151;
		rect_col[2] = 151;

		if (rescaleText) text_scale = 0.40;
	}

	if (title)
	{
		rect_col[0] = 255;
		rect_col[1] = 153;
		rect_col[2] = 51;

		text_col[0] = 255;
		text_col[1] = 255;
		text_col[2] = 255;

		if (rescaleText) text_scale = 0.50;
		font = 1;
	}

	int screen_w, screen_h;
	GRAPHICS::GET_SCREEN_RESOLUTION(&screen_w, &screen_h);

	textLeft += lineLeft;

	float lineWidthScaled = lineWidth / (float)screen_w; // line width
	float lineTopScaled = lineTop / (float)screen_h; // line top offset
	float textLeftScaled = textLeft / (float)screen_w; // text left offset
	float lineHeightScaled = lineHeight / (float)screen_h; // line height

	float lineLeftScaled = lineLeft / (float)screen_w;

	// this is how it's done in original scripts

	// text upper part
	UI::SET_TEXT_FONT(font);
	UI::SET_TEXT_SCALE(0.0, text_scale);
	UI::SET_TEXT_COLOUR(text_col[0], text_col[1], text_col[2], text_col[3]);
	UI::SET_TEXT_CENTRE(0);
	UI::SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0);
	UI::SET_TEXT_EDGE(0, 0, 0, 0, 0);
	UI::_SET_TEXT_ENTRY("STRING");
	UI::_ADD_TEXT_COMPONENT_STRING((LPSTR)caption.c_str());
	UI::_DRAW_TEXT(textLeftScaled, (((lineTopScaled + 0.00278f) + lineHeightScaled) - 0.005f));

	// text lower part
	UI::SET_TEXT_FONT(font);
	UI::SET_TEXT_SCALE(0.0, text_scale);
	UI::SET_TEXT_COLOUR(text_col[0], text_col[1], text_col[2], text_col[3]);
	UI::SET_TEXT_CENTRE(0);
	UI::SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0);
	UI::SET_TEXT_EDGE(0, 0, 0, 0, 0);
	UI::_0x521FB041D93DD0E4("STRING");
	UI::_ADD_TEXT_COMPONENT_STRING((LPSTR)caption.c_str());
	int num25 = UI::_0x9040DFB09BE75706(textLeftScaled, (((lineTopScaled + 0.00278f) + lineHeightScaled) - 0.005f));

	// rect
	draw_rect(lineLeftScaled, lineTopScaled + (0.00278f),
		lineWidthScaled, ((((float)(num25)* UI::_0xDB88A37483346780(text_scale, 0)) + (lineHeightScaled * 2.0f)) + 0.005f),
		rect_col[0], rect_col[1], rect_col[2], rect_col[3]);
}

bool trainer_switch_pressed()
{
	return IsKeyJustUp('0');
}

void get_button_state(bool *a, bool *b, bool *up, bool *down, bool *l, bool *r)
{
	if (a) *a = IsKeyDown(VK_NUMPAD5) || IsKeyDown(VK_RETURN);
	if (b) *b = IsKeyDown(VK_NUMPAD0) || trainer_switch_pressed() || IsKeyDown(VK_BACK);
	if (up) *up = IsKeyDown(VK_NUMPAD8) || IsKeyDown(VK_LEFT);
	if (down) *down = IsKeyDown(VK_NUMPAD2) || IsKeyDown(VK_RIGHT);
}

void menu_beep()
{
	AUDIO::PLAY_SOUND_FRONTEND(-1, "NAV_UP_DOWN", "HUD_FRONTEND_DEFAULT_SOUNDSET", 0);
}

std::string statusText;
DWORD statusTextDrawTicksMax;
bool statusTextGxtEntry;

void update_status_text()
{
	if (GetTickCount() < statusTextDrawTicksMax)
	{
		UI::SET_TEXT_FONT(0);
		UI::SET_TEXT_SCALE(0.55, 0.55);
		UI::SET_TEXT_COLOUR(255, 255, 255, 255);
		UI::SET_TEXT_WRAP(0.0, 1.0);
		UI::SET_TEXT_CENTRE(1);
		UI::SET_TEXT_DROPSHADOW(0, 0, 0, 0, 0);
		UI::SET_TEXT_EDGE(1, 0, 0, 0, 205);
		if (statusTextGxtEntry)
		{
			UI::_SET_TEXT_ENTRY((char *)statusText.c_str());
		}
		else
		{
			UI::_SET_TEXT_ENTRY("STRING");
			UI::_ADD_TEXT_COMPONENT_STRING((char *)statusText.c_str());
		}
		UI::_DRAW_TEXT(0.5, 0.5);
	}
}

void detectVeh()
{
	Ped playerPed = PLAYER::PLAYER_PED_ID();
	Vehicle veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);

	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("adder")))
		vehModel = 1;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("airbus")))
		vehModel = 2;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("airtug")))
		vehModel = 3;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("akuma")))
		vehModel = 4;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ambulance")))
		vehModel = 5;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("annihilator")))
		vehModel = 6;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("armytanker")))
		vehModel = 7;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("armytrailer")))
		vehModel = 8;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("armytrailer2")))
		vehModel = 9;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("asea")))
		vehModel = 10;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("asea2")))
		vehModel = 11;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("asterope")))
		vehModel = 12;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bagger")))
		vehModel = 13;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("baletrailer")))
		vehModel = 14;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("baller")))
		vehModel = 15;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("baller2")))
		vehModel = 16;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("banshee")))
		vehModel = 17;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("barracks")))
		vehModel = 18;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("barracks2")))
		vehModel = 19;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bati")))
		vehModel = 20;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bati2")))
		vehModel = 21;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("benson")))
		vehModel = 22;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bfinjection")))
		vehModel = 23;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("biff")))
		vehModel = 24;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bison")))
		vehModel = 25;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bison2")))
		vehModel = 26;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bison3")))
		vehModel = 27;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bjxl")))
		vehModel = 28;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blazer")))
		vehModel = 29;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blazer2")))
		vehModel = 30;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blazer3")))
		vehModel = 31;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blimp")))
		vehModel = 32;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blista")))
		vehModel = 33;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bmx")))
		vehModel = 34;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("boattrailer")))
		vehModel = 35;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bobcatxl")))
		vehModel = 36;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bodhi2")))
		vehModel = 37;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("boxville")))
		vehModel = 38;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("boxville2")))
		vehModel = 39;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("boxville3")))
		vehModel = 40;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("buccaneer")))
		vehModel = 41;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("buffalo")))
		vehModel = 42;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("buffalo2")))
		vehModel = 43;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bulldozer")))
		vehModel = 44;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bullet")))
		vehModel = 45;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("burrito")))
		vehModel = 46;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("burrito2")))
		vehModel = 47;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("burrito3")))
		vehModel = 48;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("burrito4")))
		vehModel = 49;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("burrito5")))
		vehModel = 50;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bus")))
		vehModel = 51;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("buzzard")))
		vehModel = 52;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("buzzard2")))
		vehModel = 53;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cablecar")))
		vehModel = 54;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("caddy")))
		vehModel = 55;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("caddy2")))
		vehModel = 56;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("camper")))
		vehModel = 57;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("carbonizzare")))
		vehModel = 58;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("carbonrs")))
		vehModel = 59;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cargobob")))
		vehModel = 60;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cargobob2")))
		vehModel = 61;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cargobob3")))
		vehModel = 62;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cargoplane")))
		vehModel = 63;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cavalcade")))
		vehModel = 64;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cavalcade2")))
		vehModel = 65;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cheetah")))
		vehModel = 66;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("coach")))
		vehModel = 67;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cogcabrio")))
		vehModel = 68;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("comet2")))
		vehModel = 69;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("coquette")))
		vehModel = 70;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cruiser")))
		vehModel = 71;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("crusader")))
		vehModel = 72;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cuban800")))
		vehModel = 73;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("cutter")))
		vehModel = 74;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("daemon")))
		vehModel = 75;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dilettante")))
		vehModel = 76;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dilettante2")))
		vehModel = 77;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dinghy")))
		vehModel = 78;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dinghy2")))
		vehModel = 79;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dloader")))
		vehModel = 80;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("docktrailer")))
		vehModel = 81;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("docktug")))
		vehModel = 82;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dominator")))
		vehModel = 83;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("double")))
		vehModel = 84;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dubsta")))
		vehModel = 85;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dubsta2")))
		vehModel = 86;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dump")))
		vehModel = 87;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("windsor")))
		vehModel = 88;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dune")))
		vehModel = 89;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dune2")))
		vehModel = 90;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("duster")))
		vehModel = 91;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("elegy2")))
		vehModel = 92;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("emperor")))
		vehModel = 93;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("emperor2")))
		vehModel = 94;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("emperor3")))
		vehModel = 95;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("entityxf")))
		vehModel = 96;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("exemplar")))
		vehModel = 97;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("f620")))
		vehModel = 98;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("faggio2")))
		vehModel = 99;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("fbi")))
		vehModel = 100;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("fbi2")))
		vehModel = 101;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("felon")))
		vehModel = 102;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("felon2")))
		vehModel = 103;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("feltzer2")))
		vehModel = 104;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("firetruk")))
		vehModel = 105;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("fixter")))
		vehModel = 106;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("flatbed")))
		vehModel = 107;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("forklift")))
		vehModel = 108;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("fq2")))
		vehModel = 109;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("freight")))
		vehModel = 110;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("virgo")))
		vehModel = 111;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("freightcar")))
		vehModel = 112;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("freightcont1")))
		vehModel = 113;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("freightcont2")))
		vehModel = 114;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("freightgrain")))
		vehModel = 115;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("freighttrailer")))
		vehModel = 116;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("frogger")))
		vehModel = 117;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("frogger2")))
		vehModel = 118;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("fugitive")))
		vehModel = 119;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("fusilade")))
		vehModel = 120;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("futo")))
		vehModel = 121;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("gauntlet")))
		vehModel = 122;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("gburrito")))
		vehModel = 123;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("graintrailer")))
		vehModel = 124;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("granger")))
		vehModel = 125;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("gresley")))
		vehModel = 126;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("habanero")))
		vehModel = 127;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("handler")))
		vehModel = 128;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("hauler")))
		vehModel = 129;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("hexer")))
		vehModel = 130;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("hotknife")))
		vehModel = 131;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("infernus")))
		vehModel = 132;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ingot")))
		vehModel = 133;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("intruder")))
		vehModel = 134;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("issi2")))
		vehModel = 135;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("jackal")))
		vehModel = 136;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("jb700")))
		vehModel = 137;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("jet")))
		vehModel = 138;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("jetmax")))
		vehModel = 139;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("journey")))
		vehModel = 140;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("khamelion")))
		vehModel = 141;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("landstalker")))
		vehModel = 142;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("lazer")))
		vehModel = 143;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("lguard")))
		vehModel = 144;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("luxor")))
		vehModel = 145;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mammatus")))
		vehModel = 146;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("manana")))
		vehModel = 147;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("marquis")))
		vehModel = 148;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("maverick")))
		vehModel = 149;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mesa")))
		vehModel = 150;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mesa2")))
		vehModel = 151;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mesa3")))
		vehModel = 152;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("metrotrain")))
		vehModel = 153;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("minivan")))
		vehModel = 154;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mixer")))
		vehModel = 155;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mixer2")))
		vehModel = 156;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("monroe")))
		vehModel = 157;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mower")))
		vehModel = 158;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mule")))
		vehModel = 159;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mule2")))
		vehModel = 160;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("nemesis")))
		vehModel = 161;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ninef")))
		vehModel = 162;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ninef2")))
		vehModel = 163;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("oracle")))
		vehModel = 164;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("oracle2")))
		vehModel = 165;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("packer")))
		vehModel = 166;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("patriot")))
		vehModel = 167;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pbus")))
		vehModel = 168;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pcj")))
		vehModel = 169;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("penumbra")))
		vehModel = 170;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("peyote")))
		vehModel = 171;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("phantom")))
		vehModel = 172;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("phoenix")))
		vehModel = 173;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("picador")))
		vehModel = 174;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("police")))
		vehModel = 175;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("police2")))
		vehModel = 176;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("police3")))
		vehModel = 177;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("police4")))
		vehModel = 178;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("policeb")))
		vehModel = 179;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("policeold1")))
		vehModel = 180;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("policeold2")))
		vehModel = 181;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("policet")))
		vehModel = 182;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("polmav")))
		vehModel = 183;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pony")))
		vehModel = 184;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pony2")))
		vehModel = 185;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pounder")))
		vehModel = 186;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("prairie")))
		vehModel = 187;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pranger")))
		vehModel = 188;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("predator")))
		vehModel = 189;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("premier")))
		vehModel = 190;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("primo")))
		vehModel = 191;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("proptrailer")))
		vehModel = 192;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("radi")))
		vehModel = 193;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("raketrailer")))
		vehModel = 194;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rancherxl")))
		vehModel = 195;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rancherxl2")))
		vehModel = 196;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rapidgt")))
		vehModel = 197;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rapidgt2")))
		vehModel = 198;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ratloader")))
		vehModel = 199;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rebel")))
		vehModel = 200;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rebel2")))
		vehModel = 201;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("regina")))
		vehModel = 202;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rentalbus")))
		vehModel = 203;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rhino")))
		vehModel = 204;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("riot")))
		vehModel = 205;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ripley")))
		vehModel = 206;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rocoto")))
		vehModel = 207;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("romero")))
		vehModel = 208;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rubble")))
		vehModel = 209;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ruffian")))
		vehModel = 210;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ruiner")))
		vehModel = 211;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rumpo")))
		vehModel = 212;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rumpo2")))
		vehModel = 213;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sabregt")))
		vehModel = 214;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sadler")))
		vehModel = 215;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sadler2")))
		vehModel = 216;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sanchez")))
		vehModel = 217;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sanchez2")))
		vehModel = 218;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sandking")))
		vehModel = 219;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sandking2")))
		vehModel = 220;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("schafter2")))
		vehModel = 221;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("schwarzer")))
		vehModel = 222;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("scorcher")))
		vehModel = 223;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("scrap")))
		vehModel = 224;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("seashark")))
		vehModel = 225;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("seashark2")))
		vehModel = 226;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("seminole")))
		vehModel = 227;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sentinel")))
		vehModel = 228;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sentinel2")))
		vehModel = 229;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("serrano")))
		vehModel = 230;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("shamal")))
		vehModel = 231;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sheriff")))
		vehModel = 232;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sheriff2")))
		vehModel = 233;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("skylift")))
		vehModel = 234;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("speedo")))
		vehModel = 235;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("speedo2")))
		vehModel = 236;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("squalo")))
		vehModel = 237;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stanier")))
		vehModel = 238;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stinger")))
		vehModel = 239;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stingergt")))
		vehModel = 240;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stockade")))
		vehModel = 241;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stockade3")))
		vehModel = 242;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stratum")))
		vehModel = 243;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stretch")))
		vehModel = 244;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stunt")))
		vehModel = 245;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("submersible")))
		vehModel = 246;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sultan")))
		vehModel = 247;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("suntrap")))
		vehModel = 248;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("superd")))
		vehModel = 249;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("surano")))
		vehModel = 250;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("surfer")))
		vehModel = 251;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("surfer2")))
		vehModel = 252;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("surge")))
		vehModel = 253;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("taco")))
		vehModel = 254;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tailgater")))
		vehModel = 255;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tanker")))
		vehModel = 256;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tankercar")))
		vehModel = 257;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("taxi")))
		vehModel = 258;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tiptruck")))
		vehModel = 259;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tiptruck2")))
		vehModel = 260;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("titan")))
		vehModel = 261;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tornado")))
		vehModel = 262;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tornado2")))
		vehModel = 263;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tornado3")))
		vehModel = 264;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tornado4")))
		vehModel = 265;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tourbus")))
		vehModel = 266;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("towtruck")))
		vehModel = 267;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("towtruck2")))
		vehModel = 268;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tr2")))
		vehModel = 269;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tr3")))
		vehModel = 270;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tr4")))
		vehModel = 271;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tractor")))
		vehModel = 272;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tractor2")))
		vehModel = 273;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tractor3")))
		vehModel = 274;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trailerlogs")))
		vehModel = 275;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trailers")))
		vehModel = 276;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trailers2")))
		vehModel = 277;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trailers3")))
		vehModel = 278;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trailersmall")))
		vehModel = 279;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trash")))
		vehModel = 280;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trflat")))
		vehModel = 281;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tribike")))
		vehModel = 282;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tribike2")))
		vehModel = 283;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tribike3")))
		vehModel = 284;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tropic")))
		vehModel = 285;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tvtrailer")))
		vehModel = 286;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("utillitruck")))
		vehModel = 287;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("utillitruck2")))
		vehModel = 288;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("utillitruck3")))
		vehModel = 289;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("vacca")))
		vehModel = 290;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("vader")))
		vehModel = 291;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("velum")))
		vehModel = 292;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("vigero")))
		vehModel = 293;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("voltic")))
		vehModel = 294;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("voodoo2")))
		vehModel = 295;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("washington")))
		vehModel = 296;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("youga")))
		vehModel = 297;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("zion")))
		vehModel = 298;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("zion2")))
		vehModel = 299;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ztype")))
		vehModel = 300;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("bifta")))
		vehModel = 301;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("kalahari")))
		vehModel = 302;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("paradise")))
		vehModel = 303;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("speeder")))
		vehModel = 304;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("btype")))
		vehModel = 305;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("jester")))
		vehModel = 306;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("turismor")))
		vehModel = 307;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("alpha")))
		vehModel = 308;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("vestra")))
		vehModel = 309;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("massacro")))
		vehModel = 310;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("zentorno")))
		vehModel = 311;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("huntley")))
		vehModel = 312;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("thrust")))
		vehModel = 313;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("rhapsody")))
		vehModel = 314;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("warrener")))
		vehModel = 315;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blade")))
		vehModel = 316;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("glendale")))
		vehModel = 317;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("panto")))
		vehModel = 318;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dubsta3")))
		vehModel = 319;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("pigalle")))
		vehModel = 320;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("monster")))
		vehModel = 321;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("sovereign")))
		vehModel = 322;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("besra")))
		vehModel = 323;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("miljet")))
		vehModel = 324;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("coquette2")))
		vehModel = 325;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("swift")))
		vehModel = 326;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("innovation")))
		vehModel = 327;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("hakuchou")))
		vehModel = 328;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("furoregt")))
		vehModel = 329;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("jester2")))
		vehModel = 330;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("massacro2")))
		vehModel = 331;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("ratloader2")))
		vehModel = 332;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("slamvan")))
		vehModel = 333;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("mule3")))
		vehModel = 334;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("velum2")))
		vehModel = 335;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("tanker2")))
		vehModel = 336;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("casco")))
		vehModel = 337;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("boxville4")))
		vehModel = 338;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("hydra")))
		vehModel = 339;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("insurgent")))
		vehModel = 340;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("insurgent2")))
		vehModel = 341;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("gburrito2")))
		vehModel = 342;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("technical")))
		vehModel = 343;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dinghy3")))
		vehModel = 344;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("savage")))
		vehModel = 345;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("enduro")))
		vehModel = 346;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("guardian")))
		vehModel = 347;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("lectro")))
		vehModel = 348;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("kuruma")))
		vehModel = 349;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("kuruma2")))
		vehModel = 350;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("trash2")))
		vehModel = 351;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("barracks3")))
		vehModel = 352;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("valkyrie")))
		vehModel = 353;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("slamvan2")))
		vehModel = 354;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("submersible2")))
		vehModel = 355;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dukes")))
		vehModel = 356;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dukes2")))
		vehModel = 357;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("buffalo3")))
		vehModel = 358;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dominator2")))
		vehModel = 359;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("dodo")))
		vehModel = 360;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("marshall")))
		vehModel = 361;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blimp2")))
		vehModel = 362;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("gauntlet2")))
		vehModel = 363;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stalion")))
		vehModel = 364;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("stalion2")))
		vehModel = 365;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blista2")))
		vehModel = 366;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("blista3")))
		vehModel = 367;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("swift2")))
		vehModel = 368;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("luxor2")))
		vehModel = 369;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("feltzer3")))
		vehModel = 370;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("osiris")))
		vehModel = 371;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("coquette3")))
		vehModel = 372;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("vindicator")))
		vehModel = 373;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("t20")))
		vehModel = 374;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("brawler")))
		vehModel = 375;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("toro")))
		vehModel = 376;
	if (VEHICLE::IS_VEHICLE_MODEL(veh, GAMEPLAY::GET_HASH_KEY("chino")))
		vehModel = 377;

}

void set_status_text(std::string str, DWORD time = 2500, bool isGxtEntry = false)
{
	statusText = str;
	statusTextDrawTicksMax = GetTickCount() + time;
	statusTextGxtEntry = isGxtEntry;
}

int saveActiveLineIndex = 0;
int vehSave;

void process_save_menu()
{
	saveActiveLineIndex = 0;
	const float lineWidth = 250.0;
	const int lineCount = 3;
	Ped playerPed = PLAYER::PLAYER_PED_ID();
	Vehicle veh;
	Vector3 position;

	std::string caption = "SAVE MENU";

	static LPCSTR lineCaption[lineCount] = {
		"SAVE MAIN",
		"SAVE GROUND",
		"DELETE SAVE"
	};

	DWORD waitTime = 150;
	while (true)
	{
		// timed menu draw, used for pause after active line switch
		DWORD maxTickCount = GetTickCount() + waitTime;
		do
		{
			// draw menu
			draw_menu_line(caption, lineWidth, 15.0, 18.0, 0.0, 5.0, false, true);
			for (int i = 0; i < lineCount; i++)
				if (i != saveActiveLineIndex)
					draw_menu_line(lineCaption[i], lineWidth, 9.0, 60.0 + i * 36.0, 0.0, 9.0, false, false);
			draw_menu_line(lineCaption[saveActiveLineIndex], lineWidth + 1.0, 11.0, 56.0 + saveActiveLineIndex * 36.0, 0.0, 7.0, true, false);
			WAIT(0);

			update_status_text();
		} while (GetTickCount() < maxTickCount);
		waitTime = 0;

		// process buttons
		bool bSelect, bBack, bUp, bDown;
		get_button_state(&bSelect, &bBack, &bUp, &bDown, NULL, NULL);
		if (bSelect)
		{
			menu_beep();
			switch (saveActiveLineIndex)
			{
			case 0:
				if (PED::IS_PED_IN_ANY_VEHICLE(playerPed, 1))
				{
					if (vehSave == 1)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle1", "VehModel", vehModel);
						writer.WriteFloat("Vehicle1", "VehX", position.x);
						writer.WriteFloat("Vehicle1", "VehY", position.y);
						writer.WriteFloat("Vehicle1", "VehZ", position.z);
						writer.WriteFloat("Vehicle1", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle1 spawn saved.");
					}
					if (vehSave == 2)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle2", "VehModel", vehModel);
						writer.WriteFloat("Vehicle2", "VehX", position.x);
						writer.WriteFloat("Vehicle2", "VehY", position.y);
						writer.WriteFloat("Vehicle2", "VehZ", position.z);
						writer.WriteFloat("Vehicle2", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle2 spawn saved.");
					}
					if (vehSave == 3)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle3", "VehModel", vehModel);
						writer.WriteFloat("Vehicle3", "VehX", position.x);
						writer.WriteFloat("Vehicle3", "VehY", position.y);
						writer.WriteFloat("Vehicle3", "VehZ", position.z);
						writer.WriteFloat("Vehicle3", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle3 spawn saved.");
					}
					if (vehSave == 4)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle4", "VehModel", vehModel);
						writer.WriteFloat("Vehicle4", "VehX", position.x);
						writer.WriteFloat("Vehicle4", "VehY", position.y);
						writer.WriteFloat("Vehicle4", "VehZ", position.z);
						writer.WriteFloat("Vehicle4", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle4 spawn saved.");
					}
					if (vehSave == 5)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle5", "VehModel", vehModel);
						writer.WriteFloat("Vehicle5", "VehX", position.x);
						writer.WriteFloat("Vehicle5", "VehY", position.y);
						writer.WriteFloat("Vehicle5", "VehZ", position.z);
						writer.WriteFloat("Vehicle5", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle5 spawn saved.");
					}
					if (vehSave == 6)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle6", "VehModel", vehModel);
						writer.WriteFloat("Vehicle6", "VehX", position.x);
						writer.WriteFloat("Vehicle6", "VehY", position.y);
						writer.WriteFloat("Vehicle6", "VehZ", position.z);
						writer.WriteFloat("Vehicle6", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle6 spawn saved.");
					}
					if (vehSave == 7)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle7", "VehModel", vehModel);
						writer.WriteFloat("Vehicle7", "VehX", position.x);
						writer.WriteFloat("Vehicle7", "VehY", position.y);
						writer.WriteFloat("Vehicle7", "VehZ", position.z);
						writer.WriteFloat("Vehicle7", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle7 spawn saved.");
					}
					if (vehSave == 8)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle8", "VehModel", vehModel);
						writer.WriteFloat("Vehicle8", "VehX", position.x);
						writer.WriteFloat("Vehicle8", "VehY", position.y);
						writer.WriteFloat("Vehicle8", "VehZ", position.z);
						writer.WriteFloat("Vehicle8", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle8 spawn saved.");
					}
					if (vehSave == 9)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle9", "VehModel", vehModel);
						writer.WriteFloat("Vehicle9", "VehX", position.x);
						writer.WriteFloat("Vehicle9", "VehY", position.y);
						writer.WriteFloat("Vehicle9", "VehZ", position.z);
						writer.WriteFloat("Vehicle9", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle9 spawn saved.");
					}
					if (vehSave == 10)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle10", "VehModel", vehModel);
						writer.WriteFloat("Vehicle10", "VehX", position.x);
						writer.WriteFloat("Vehicle10", "VehY", position.y);
						writer.WriteFloat("Vehicle10", "VehZ", position.z);
						writer.WriteFloat("Vehicle10", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle10 spawn saved.");
					}
					if (vehSave == 11)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle11", "VehModel", vehModel);
						writer.WriteFloat("Vehicle11", "VehX", position.x);
						writer.WriteFloat("Vehicle11", "VehY", position.y);
						writer.WriteFloat("Vehicle11", "VehZ", position.z);
						writer.WriteFloat("Vehicle11", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle11 spawn saved.");
					}
					if (vehSave == 12)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle12", "VehModel", vehModel);
						writer.WriteFloat("Vehicle12", "VehX", position.x);
						writer.WriteFloat("Vehicle12", "VehY", position.y);
						writer.WriteFloat("Vehicle12", "VehZ", position.z);
						writer.WriteFloat("Vehicle12", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle12 spawn saved.");
					}
					if (vehSave == 13)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle13", "VehModel", vehModel);
						writer.WriteFloat("Vehicle13", "VehX", position.x);
						writer.WriteFloat("Vehicle13", "VehY", position.y);
						writer.WriteFloat("Vehicle13", "VehZ", position.z);
						writer.WriteFloat("Vehicle13", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle13 spawn saved.");
					}
					if (vehSave == 14)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle14", "VehModel", vehModel);
						writer.WriteFloat("Vehicle14", "VehX", position.x);
						writer.WriteFloat("Vehicle14", "VehY", position.y);
						writer.WriteFloat("Vehicle14", "VehZ", position.z);
						writer.WriteFloat("Vehicle14", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle14 spawn saved.");
					}
					if (vehSave == 15)
					{
						veh = PED::GET_VEHICLE_PED_IS_USING(playerPed);
						position = ENTITY::GET_ENTITY_COORDS(veh, 1);
						detectVeh();
						writer.WriteInteger("Vehicle15", "VehModel", vehModel);
						writer.WriteFloat("Vehicle15", "VehX", position.x);
						writer.WriteFloat("Vehicle15", "VehY", position.y);
						writer.WriteFloat("Vehicle15", "VehZ", position.z);
						writer.WriteFloat("Vehicle15", "VehHeading", ENTITY::GET_ENTITY_HEADING(veh));
						set_status_text("Vehicle15 spawn saved.");
					}
				}
				else
				{
					set_status_text("Player is not in vehicle.");
				}
				break;
			case 1:
				position = ENTITY::GET_ENTITY_COORDS(playerPed, 1);
				if (!PED::IS_PED_IN_ANY_VEHICLE(playerPed, 1))
				{
					if (vehSave == 1)
					{
						writer.WriteFloat("Vehicle1", "VehZ", position.z);
						set_status_text("Vehicle1 spawn set to current ground level.");
					}
					if (vehSave == 2)
					{
						writer.WriteFloat("Vehicle2", "VehZ", position.z);
						set_status_text("Vehicle2 spawn set to current ground level.");
					}
					if (vehSave == 3)
					{
						writer.WriteFloat("Vehicle3", "VehZ", position.z);
						set_status_text("Vehicle3 spawn set to current ground level.");
					}
					if (vehSave == 4)
					{
						writer.WriteFloat("Vehicle4", "VehZ", position.z);
						set_status_text("Vehicle4 spawn set to current ground level.");
					}
					if (vehSave == 5)
					{
						writer.WriteFloat("Vehicle5", "VehZ", position.z);
						set_status_text("Vehicle5 spawn set to current ground level.");
					}
					if (vehSave == 6)
					{
						writer.WriteFloat("Vehicle6", "VehZ", position.z);
						set_status_text("Vehicle6 spawn set to current ground level.");
					}
					if (vehSave == 7)
					{
						writer.WriteFloat("Vehicle7", "VehZ", position.z);
						set_status_text("Vehicle7 spawn set to current ground level.");
					}
					if (vehSave == 8)
					{
						writer.WriteFloat("Vehicle8", "VehZ", position.z);
						set_status_text("Vehicle8 spawn set to current ground level.");
					}
					if (vehSave == 9)
					{
						writer.WriteFloat("Vehicle9", "VehZ", position.z);
						set_status_text("Vehicle9 spawn set to current ground level.");
					}
					if (vehSave == 10)
					{
						writer.WriteFloat("Vehicle10", "VehZ", position.z);
						set_status_text("Vehicle10 spawn set to current ground level.");
					}
					if (vehSave == 11)
					{
						writer.WriteFloat("Vehicle11", "VehZ", position.z);
						set_status_text("Vehicle11 spawn set to current ground level.");
					}
					if (vehSave == 12)
					{
						writer.WriteFloat("Vehicle12", "VehZ", position.z);
						set_status_text("Vehicle12 spawn set to current ground level.");
					}
					if (vehSave == 13)
					{
						writer.WriteFloat("Vehicle13", "VehZ", position.z);
						set_status_text("Vehicle13 spawn set to current ground level.");
					}
					if (vehSave == 14)
					{
						writer.WriteFloat("Vehicle14", "VehZ", position.z);
						set_status_text("Vehicle14 spawn set to current ground level.");
					}
					if (vehSave == 15)
					{
						writer.WriteFloat("Vehicle15", "VehZ", position.z);
						set_status_text("Vehicle15 spawn set to current ground level.");
					}
				}
				else
					set_status_text("Exit your vehicle to properly save ground level.");
				break;
			case 2:
				if (vehSave == 1)
				{
					writer.WriteInteger("Vehicle1", "VehModel", 1);
					writer.WriteFloat("Vehicle1", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle1", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle1", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle1", "VehHeading", 99999.999999);
					set_status_text("Vehicle1 spawn deleted.");
				}
				if (vehSave == 2)
				{
					writer.WriteInteger("Vehicle2", "VehModel", 1);
					writer.WriteFloat("Vehicle2", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle2", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle2", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle2", "VehHeading", 99999.999999);
					set_status_text("Vehicle2 spawn deleted.");
				}
				if (vehSave == 3)
				{
					writer.WriteInteger("Vehicle3", "VehModel", 1);
					writer.WriteFloat("Vehicle3", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle3", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle3", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle3", "VehHeading", 99999.999999);
					set_status_text("Vehicle3 spawn deleted.");
				}
				if (vehSave == 4)
				{
					writer.WriteInteger("Vehicle4", "VehModel", 1);
					writer.WriteFloat("Vehicle4", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle4", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle4", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle4", "VehHeading", 99999.999999);
					set_status_text("Vehicle4 spawn deleted.");
				}
				if (vehSave == 5)
				{
					writer.WriteInteger("Vehicle5", "VehModel", 1);
					writer.WriteFloat("Vehicle5", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle5", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle5", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle5", "VehHeading", 99999.999999);
					set_status_text("Vehicle5 spawn deleted.");
				}
				if (vehSave == 6)
				{
					writer.WriteInteger("Vehicle6", "VehModel", 1);
					writer.WriteFloat("Vehicle6", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle6", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle6", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle6", "VehHeading", 99999.999999);
					set_status_text("Vehicle6 spawn deleted.");
				}
				if (vehSave == 7)
				{
					writer.WriteInteger("Vehicle7", "VehModel", 1);
					writer.WriteFloat("Vehicle7", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle7", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle7", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle7", "VehHeading", 99999.999999);
					set_status_text("Vehicle7 spawn deleted.");
				}
				if (vehSave == 8)
				{
					writer.WriteInteger("Vehicle8", "VehModel", 1);
					writer.WriteFloat("Vehicle8", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle8", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle8", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle8", "VehHeading", 99999.999999);
					set_status_text("Vehicle8 spawn deleted.");
				}
				if (vehSave == 9)
				{
					writer.WriteInteger("Vehicle9", "VehModel", 1);
					writer.WriteFloat("Vehicle9", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle9", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle9", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle9", "VehHeading", 99999.999999);
					set_status_text("Vehicle9 spawn deleted.");
				}
				if (vehSave == 10)
				{
					writer.WriteInteger("Vehicle10", "VehModel", 1);
					writer.WriteFloat("Vehicle10", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle10", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle10", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle10", "VehHeading", 99999.999999);
					set_status_text("Vehicle10 spawn deleted.");
				}
				if (vehSave == 11)
				{
					writer.WriteInteger("Vehicle11", "VehModel", 1);
					writer.WriteFloat("Vehicle11", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle11", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle11", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle11", "VehHeading", 99999.999999);
					set_status_text("Vehicle11 spawn deleted.");
				}
				if (vehSave == 12)
				{
					writer.WriteInteger("Vehicle12", "VehModel", 1);
					writer.WriteFloat("Vehicle12", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle12", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle12", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle12", "VehHeading", 99999.999999);
					set_status_text("Vehicle12 spawn deleted.");
				}
				if (vehSave == 13)
				{
					writer.WriteInteger("Vehicle13", "VehModel", 1);
					writer.WriteFloat("Vehicle13", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle13", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle13", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle13", "VehHeading", 99999.999999);
					set_status_text("Vehicle13 spawn deleted.");
				}
				if (vehSave == 14)
				{
					writer.WriteInteger("Vehicle14", "VehModel", 1);
					writer.WriteFloat("Vehicle14", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle14", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle14", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle14", "VehHeading", 99999.999999);
					set_status_text("Vehicle14 spawn deleted.");
				}
				if (vehSave == 15)
				{
					writer.WriteInteger("Vehicle15", "VehModel", 1);
					writer.WriteFloat("Vehicle15", "VehX", 99999.999999);
					writer.WriteFloat("Vehicle15", "VehY", 99999.999999);
					writer.WriteFloat("Vehicle15", "VehZ", 99999.999999);
					writer.WriteFloat("Vehicle15", "VehHeading", 99999.999999);
					set_status_text("Vehicle15 spawn deleted.");
				}
				break;
			}
			waitTime = 200;
		}
		else
			if (bBack || trainer_switch_pressed())
			{
				menu_beep();
				vehSave = 0;
				break;
			}
			else
				if (bUp)
				{
					menu_beep();
					if (saveActiveLineIndex == 0)
						saveActiveLineIndex = lineCount;
					saveActiveLineIndex--;
					waitTime = 150;
				}
				else
					if (bDown)
					{
						menu_beep();
						saveActiveLineIndex++;
						if (saveActiveLineIndex == lineCount)
							saveActiveLineIndex = 0;
						waitTime = 150;
					}
	}
}

int activeLineIndexMain = 0;

void process_main_menu()
{
	activeLineIndexMain = 0;
	const float lineWidth = 250.0;
	const int lineCount = 15;

	std::string caption = "VEHICLE SPAWN SAVER";

	static LPCSTR lineCaption[lineCount] = {
		"SAVE 1",
		"SAVE 2",
		"SAVE 3",
		"SAVE 4",
		"SAVE 5",
		"SAVE 6",
		"SAVE 7",
		"SAVE 8",
		"SAVE 9",
		"SAVE 10",
		"SAVE 11",
		"SAVE 12",
		"SAVE 13",
		"SAVE 14",
		"SAVE 15"
	};

	DWORD waitTime = 150;
	while (true)
	{
		// timed menu draw, used for pause after active line switch
		DWORD maxTickCount = GetTickCount() + waitTime;
		do
		{
			// draw menu
			draw_menu_line(caption, lineWidth, 15.0, 18.0, 0.0, 5.0, false, true);
			for (int i = 0; i < lineCount; i++)
				if (i != activeLineIndexMain)
					draw_menu_line(lineCaption[i], lineWidth, 9.0, 60.0 + i * 36.0, 0.0, 9.0, false, false);
			draw_menu_line(lineCaption[activeLineIndexMain], lineWidth + 1.0, 11.0, 56.0 + activeLineIndexMain * 36.0, 0.0, 7.0, true, false);
			WAIT(0);
			update_status_text();
		} while (GetTickCount() < maxTickCount);
		waitTime = 0;

		// process buttons
		bool bSelect, bBack, bUp, bDown;
		get_button_state(&bSelect, &bBack, &bUp, &bDown, NULL, NULL);
		if (bSelect)
		{
			menu_beep();
			switch (activeLineIndexMain)
			{
			case 0:
				vehSave = 1;
				process_save_menu();
				break;
			case 1:
				vehSave = 2;
				process_save_menu();
				break;
			case 2:
				vehSave = 3;
				process_save_menu();
				break;
			case 3:
				vehSave = 4;
				process_save_menu();
				break;
			case 4:
				vehSave = 5;
				process_save_menu();
				break;
			case 5:
				vehSave = 6;
				process_save_menu();
				break;
			case 6:
				vehSave = 7;
				process_save_menu();
				break;
			case 7:
				vehSave = 8;
				process_save_menu();
				break;
			case 8:
				vehSave = 9;
				process_save_menu();
				break;
			case 9:
				vehSave = 10;
				process_save_menu();
				break;
			case 10:
				vehSave = 11;
				process_save_menu();
				break;
			case 11:
				vehSave = 12;
				process_save_menu();
				break;
			case 12:
				vehSave = 13;
				process_save_menu();
				break;
			case 13:
				vehSave = 14;
				process_save_menu();
				break;
			case 14:
				vehSave = 15;
				process_save_menu();
				break;
			}
			waitTime = 200;
		}
		else
			if (bBack || trainer_switch_pressed())
			{
				menu_beep();
				set_status_text("");
				break;
			}
			else
				if (bUp)
				{
					menu_beep();
					if (activeLineIndexMain == 0)
						activeLineIndexMain = lineCount;
					activeLineIndexMain--;
					waitTime = 150;
				}
				else
					if (bDown)
					{
						menu_beep();
						activeLineIndexMain++;
						if (activeLineIndexMain == lineCount)
							activeLineIndexMain = 0;
						waitTime = 150;
					}
	}
}

void reset_globals()
{
	activeLineIndexMain =
		saveActiveLineIndex = 0;
}

void main()
{
	reset_globals();

	while (true)
	{
		if (trainer_switch_pressed())
		{
			menu_beep();
			process_main_menu();
		}
		WAIT(0);
	}
}

void ScriptMain()
{
	srand(GetTickCount());
	main();
}
